// 写作类别
window.categories = window.categories || {};

// 提示词模板
const WRITING_TEMPLATES = {
  // 基础提示词
  basePrompt: '你是一个微博平台神评论专家，能根据输入，分析提起关键点，生成引人注目的神回复。',
  
  // 格式要求
  formatRequirements: `## 格式要求
1. 请基于以下内容生成恰好 {k} 条简短而有共鸣的中文评论
2. 只输出一行，使用 '||' 连接各条评论
3. 不要输出其它任何说明或前后缀`,
  
  // 各写作类型模板
  expand: `## 任务说明
请在不改变核心信息的前提下，对下述内容进行扩写，使其更有温度与细节。

## 输入内容
{input}

## 要求
1. 保持原文核心意思不变
2. 增加具体细节和情感色彩
3. 使内容更加生动形象`,
  
  polish: `## 任务说明
请润色以下文本，使其更通顺自然、更具亲和力。

## 原文
{input}

## 要求
1. 保持原意的同时优化表达
2. 使语言更加流畅自然
3. 增加适当的连接词和过渡`,
  
  continue: `## 任务说明
请为以下开头续写合适内容，注意语气与风格一致。

## 开头
{input}

## 要求
1. 保持与开头一致的风格和语气
2. 内容连贯自然
3. 适当发挥创意`,
  
  article: `## 任务说明
请根据主题撰写一篇结构清晰、论证有力的文章。

## 主题
{input}

## 要求
1. 结构清晰，层次分明
2. 论点明确，论据充分
3. 语言流畅，风格统一`
};

// 预设内容
const WRITING_PRESETS = {
  expand: ["生日祝福", "表白", "道歉", "拜托/请求", "安慰鼓励"],
  continue: ["欢迎新人祝福", "大家好，我是…", "你很好，只是…", "我有一个朋友…"],
  article: ["观后感", "活动通知", "产品更新日志", "道歉声明"]
};

window.categories.writing = {
  "id": "writing",
  "name": "写作",
  "layout": "cards",
  
  // 获取提示词方法
  getPrompt: function(templateName, variables = {}) {
    const base = WRITING_TEMPLATES.basePrompt + '\n\n' + WRITING_TEMPLATES.formatRequirements + '\n\n';
    const template = WRITING_TEMPLATES[templateName] || '';
    let prompt = base + template;
    
    // 替换变量
    Object.entries(variables).forEach(([key, value]) => {
      prompt = prompt.replace(new RegExp(`\\{${key}\\}`, 'g'), value);
    });
    
    return prompt;
  },
  
  // 获取预设列表
  getPresets: function(categoryId) {
    return WRITING_PRESETS[categoryId] || [];
  },
  
  "subcategories": [
    { 
      "id": "expand", 
      "name": "文本扩写", 
      "icon": "🪄", 
      "subtitle": "内容更丰富",
      "presets": WRITING_PRESETS.expand,
      "getPrompt": function(vars = {}) {
        return window.categories.writing.getPrompt('expand', vars);
      }
    },
    { 
      "id": "polish-text", 
      "name": "文本润色", 
      "icon": "✨", 
      "subtitle": "优化表达",
      "getPrompt": function(vars = {}) {
        return window.categories.writing.getPrompt('polish', vars);
      }
    },
    { 
      "id": "continue", 
      "name": "智能续写", 
      "icon": "➡️", 
      "subtitle": "衔接自然",
      "presets": WRITING_PRESETS.continue,
      "getPrompt": function(vars = {}) {
        return window.categories.writing.getPrompt('continue', vars);
      }
    },
    { 
      "id": "article", 
      "name": "文章写作", 
      "icon": "📝", 
      "subtitle": "结构清晰",
      "presets": WRITING_PRESETS.article,
      "getPrompt": function(vars = {}) {
        return window.categories.writing.getPrompt('article', vars);
      }
    }
  ]
};